<?php
namespace Admin\Controller;
use Think\Controller;
class IndexController extends Controller {
	public function _initialize() {
		$this->_admin_check();
	}

	private function _admin_check() {
		$is_admin = session('is_admin');
    	if (!$is_admin) {
    		$this->login();
    		return;
    	}
	}

	//渲染到登录页面
    public function index(){
        $this->login();
    }

    public function login() {
    	$this->display('login');
    }

    //登录
    public function do_login() {
    	$user_name = I('post.username', '');
    	$pass      = I('post.password', '');

    	if (!$user_name || !$pass) {
    		$this->error('用户名和密码不能为空');
    	}
    	
    	$user_model = M('user');
    	$filter = array(
    		'user_name' => $user_name
    	);
    	$user_info = $user_model
                            ->field('id, user_name, role_id, password')
                            ->where($filter)
                            ->find();
    	if ( !$user_info ) {
    		$this->error('用户名或密码错误', U('login'));
    	}

    	if ( !password_verify($pass, $user_info['password'])) {
            //之所以这样提示是为了防止暴力破解
    		$this->error('用户名或密码有误', U('login'));
    	}

    	$is_admin = $user_info['role_id'] >= 10 ? 1 : 0;
    	if (!$is_admin) {
    		$this->error('您没有权限操作', U('login'));
    	}
        //设置是否是管理员
    	session('is_admin', 1);

        //设置用户相关信息到session中，方便获取到用户ID
    	$this->set_auth_info($user_info['id']);

        //跳转到后台的Home/index方法
    	$this->redirect('Home/index');
    }

    /**
     * 设置用户信息到session中，用于登录和注册完成之后
     */
    private function set_auth_info($uid)
    {
        $user_info = M('user')->find($uid);
        if(!is_array($user_info)) return false;

        $user_auth_info = array(
            'uid'       => $user_info['id'],
            'user_name' => $user_info['user_name'],
            'avatar'    => $user_info['avatar']
        );
        session('user_auth', $user_auth_info);
        session('user_auth_sign', data_auth_sign($user_auth_info));
        return true;
    }

}